In a virtualized computer, the computer includes a virtual operating system. The virtual operating system includes a common base portion and separate user portions that all run on a physical computer. The physical computer is referred to as a host. The common base portion may be referred to as a hypervisor or control program and each user portion may be called a guest. Each guest is a logical partition of physical resources of the computer. A guest operating system runs on each guest, and the guest appears to the guest operating system as a real computer. One or more applications can run on each guest operating system and its guest.
As discussed above, on each guest operating system, one or more applications (e.g., Java™ virtual machines) can be run. However, the applications (e.g., Java™ virtual machines) executing on each of these guest operating systems are not able to share class data (e.g., Java™ class data) even though they could be using the same classes. That is, the class data is required to be loaded into each guest's allocation of the host physical memory even though the class data may be common across the applications. As a result of not being able to share the class data among the guests, multiple copies of the same class data may reside in the host memory thereby not optimally using the physical memory on the host.